subroutine dye_init()
use molecule
implicit none
   !-------------------------------------------------------------------------
   natom    = 58
   neighmax = 4
   molname  = "dye"
   !
   if ( allocated(neigh   )) deallocate( neigh   )
   if ( allocated(element )) deallocate( element )
   if ( allocated(molpos  )) deallocate( molpos  )
   allocate( element(natom), neigh(neighmax, natom), molpos(3,natom) )
   !
   element( 1) = "CA"
   element( 2) = "CA"
   element( 3) = "CA"
   element( 4) = "CA"
   element( 5) = "CA"
   element( 6) = "CA"
   element( 7) = "HA"
   element( 8) = "HA"
   element( 9) = "HA"
   element(10) = "HA"
   element(11) = "C1"
   element(12) = "Ox"
   element(13) = "NH"
   element(14) = "HN"
   element(15) = "Ct"
   element(16) = "HT"
   element(17) = "C2"
   element(18) = "OA"
   element(19) = "OH"
   element(20) = "HO"
   element(21) = "CT"
   element(22) = "HT"
   element(23) = "HT"
   element(24) = "CA"
   element(25) = "CA"
   element(26) = "CA"
   element(27) = "CA"
   element(28) = "CA"
   element(29) = "CA"
   element(30) = "HA"
   element(31) = "HA"
   element(32) = "HA"
   element(33) = "HA"
   element(34) = "HA"
   element(35) = "C1"
   element(36) = "Ox"
   element(37) = "NH"
   element(38) = "HN"
   element(39) = "Ct"
   element(40) = "HT"
   element(41) = "C2"
   element(42) = "OA"
   element(43) = "OH"
   element(44) = "HO"
   element(45) = "CT"
   element(46) = "HT"
   element(47) = "HT"
   element(48) = "CA"
   element(49) = "CA"
   element(50) = "CA"
   element(51) = "CA"
   element(52) = "CA"
   element(53) = "CA"
   element(54) = "HA"
   element(55) = "HA"
   element(56) = "HA"
   element(57) = "HA"
   element(58) = "HA"
   !
   neigh(:, 1) = (/ 2, 6, 7, 0 /)
   neigh(:, 2) = (/ 1, 3,11, 0 /)
   neigh(:, 3) = (/ 2, 4, 8, 0 /)
   neigh(:, 4) = (/ 3, 5, 9, 0 /)
   neigh(:, 5) = (/ 4, 6,35, 0 /)
   neigh(:, 6) = (/ 1, 5,10, 0 /)
   neigh(:, 7) = (/ 1, 0, 0, 0 /)
   neigh(:, 8) = (/ 3, 0, 0, 0 /)
   neigh(:, 9) = (/ 4, 0, 0, 0 /)
   neigh(:,10) = (/ 6, 0, 0, 0 /)
   neigh(:,11) = (/ 2,12,13, 0 /)
   neigh(:,12) = (/11, 0, 0, 0 /)
   neigh(:,13) = (/11,14,15, 0 /)
   neigh(:,14) = (/13, 0, 0, 0 /)
   neigh(:,15) = (/13,16,17,21 /)
   neigh(:,16) = (/15, 0, 0, 0 /)
   neigh(:,17) = (/15,18,19, 0 /)
   neigh(:,18) = (/17, 0, 0, 0 /)
   neigh(:,19) = (/17,20, 0, 0 /)
   neigh(:,20) = (/19, 0, 0, 0 /)
   neigh(:,21) = (/15,22,23,24 /)
   neigh(:,22) = (/21, 0, 0, 0 /)
   neigh(:,23) = (/21, 0, 0, 0 /)
   neigh(:,24) = (/21,25,29, 0 /)
   neigh(:,25) = (/24,26,30, 0 /)
   neigh(:,26) = (/25,27,31, 0 /)
   neigh(:,27) = (/26,28,32, 0 /)
   neigh(:,28) = (/27,29,33, 0 /)
   neigh(:,29) = (/24,28,34, 0 /)
   neigh(:,30) = (/25, 0, 0, 0 /)
   neigh(:,31) = (/26, 0, 0, 0 /)
   neigh(:,32) = (/27, 0, 0, 0 /)
   neigh(:,33) = (/28, 0, 0, 0 /)
   neigh(:,34) = (/29, 0, 0, 0 /)
   neigh(:,35) = (/ 5,36,37, 0 /)
   neigh(:,36) = (/35, 0, 0, 0 /)
   neigh(:,37) = (/35,38,39, 0 /)
   neigh(:,38) = (/37, 0, 0, 0 /)
   neigh(:,39) = (/37,40,41,45 /)
   neigh(:,40) = (/39, 0, 0, 0 /)
   neigh(:,41) = (/39,42,43, 0 /)
   neigh(:,42) = (/41, 0, 0, 0 /)
   neigh(:,43) = (/41,44, 0, 0 /)
   neigh(:,44) = (/43, 0, 0, 0 /)
   neigh(:,45) = (/39,46,47,48 /)
   neigh(:,46) = (/45, 0, 0, 0 /)
   neigh(:,47) = (/45, 0, 0, 0 /)
   neigh(:,48) = (/45,49,53, 0 /)
   neigh(:,49) = (/48,50,54, 0 /)
   neigh(:,50) = (/49,51,55, 0 /)
   neigh(:,51) = (/50,52,56, 0 /)
   neigh(:,52) = (/51,53,57, 0 /)
   neigh(:,53) = (/52,48,58, 0 /)
   neigh(:,54) = (/49, 0, 0, 0 /)
   neigh(:,55) = (/50, 0, 0, 0 /)
   neigh(:,56) = (/51, 0, 0, 0 /)
   neigh(:,57) = (/52, 0, 0, 0 /)
   neigh(:,58) = (/53, 0, 0, 0 /)
   !
   molpos(:,  1) = (/  -2.30799793,   1.84183510,   0.07990562 /)
   molpos(:,  2) = (/  -2.89040000,   0.75590000,   0.74440000 /)
   molpos(:,  3) = (/  -3.65195532,   0.98168018,   1.89724726 /)
   molpos(:,  4) = (/  -3.82970029,   2.28308436,   2.38176131 /)
   molpos(:,  5) = (/  -3.24729822,   3.36901947,   1.71726693 /)
   molpos(:,  6) = (/  -2.48574289,   3.14323929,   0.56441968 /)
   molpos(:,  7) = (/  -1.73430000,   1.66990000,  -0.78880000 /)
   molpos(:,  8) = (/  -4.09200000,   0.16820000,   2.40050000 /)
   molpos(:,  9) = (/  -4.40050000,   2.43720000,   3.24350000 /)
   molpos(:, 10) = (/  -2.04310000,   3.93970000,   0.05450000 /)
   molpos(:, 11) = (/  -2.68130000,  -0.60460000,   0.20390000 /)
   molpos(:, 12) = (/  -1.99390000,  -0.72000000,  -0.81790000 /)
   molpos(:, 13) = (/  -3.22020000,  -1.68880000,   0.80290000 /)
   molpos(:, 14) = (/  -3.76540000,  -1.57590000,   1.61700000 /)
   molpos(:, 15) = (/  -3.03300000,  -3.04260000,   0.29420000 /)
   molpos(:, 16) = (/  -3.65150000,  -3.70760000,   0.91260000 /)
   molpos(:, 17) = (/  -3.50840000,  -3.09900000,  -1.13900000 /)
   molpos(:, 18) = (/  -4.70020000,  -3.31570000,  -1.38160000 /)
   molpos(:, 19) = (/  -2.61350000,  -2.90340000,  -2.18680000 /)
   molpos(:, 20) = (/  -3.09420000,  -2.97310000,  -3.04700000 /)
   molpos(:, 21) = (/  -1.52580000,  -3.42330000,   0.38480000 /)
   molpos(:, 22) = (/  -0.92120000,  -2.73440000,  -0.21990000 /)
   molpos(:, 23) = (/  -1.25650000,  -3.35840000,   1.44760000 /)
   molpos(:, 24) = (/  -1.33364883,  -4.83711230,  -0.07623867 /)
   molpos(:, 25) = (/  -0.57880000,  -5.08940000,  -1.22800000 /)
   molpos(:, 26) = (/  -0.39020577,  -6.40482458,  -1.66855692 /)
   molpos(:, 27) = (/  -0.95693535,  -7.46885322,  -0.95675594 /)
   molpos(:, 28) = (/  -1.71178418,  -7.21656552,   0.19500539 /)
   molpos(:, 29) = (/  -1.90037841,  -5.90114094,   0.63556231 /)
   molpos(:, 30) = (/  -0.15160000,  -4.28240000,  -1.76690000 /)
   molpos(:, 31) = (/   0.17930000,  -6.58510000,  -2.53840000 /)
   molpos(:, 32) = (/  -0.80980000,  -8.44840000,  -1.29120000 /)
   molpos(:, 33) = (/  -2.12740000,  -8.00850000,   0.72750000 /)
   molpos(:, 34) = (/  -2.45750000,  -5.70760000,   1.49880000 /)
   molpos(:, 35) = (/  -3.44990000,   4.70980000,   2.24550000 /)
   molpos(:, 36) = (/  -4.13070000,   4.85220000,   3.26750000 /)
   molpos(:, 37) = (/  -2.92280000,   5.78690000,   1.65620000 /)
   molpos(:, 38) = (/  -2.37590000,   5.70250000,   0.83780000 /)
   molpos(:, 39) = (/  -3.15260000,   7.08310000,   2.21300000 /)
   molpos(:, 40) = (/  -3.43090000,   7.03900000,   3.27450000 /)
   molpos(:, 41) = (/  -1.96380000,   7.96710000,   1.97940000 /)
   molpos(:, 42) = (/  -1.34910000,   7.90510000,   0.90940000 /)
   molpos(:, 43) = (/  -1.56000000,   8.86130000,   2.96440000 /)
   molpos(:, 44) = (/  -2.16140000,   8.78270000,   3.74690000 /)
   molpos(:, 45) = (/  -4.34090000,   7.67260000,   1.41780000 /)
   molpos(:, 46) = (/  -4.08350000,   7.71760000,   0.35070000 /)
   molpos(:, 47) = (/  -5.19550000,   7.00530000,   1.59540000 /)
   molpos(:, 48) = (/  -4.66431798,   9.04362717,   1.92796499 /)
   molpos(:, 49) = (/  -5.19210000,   9.20170000,   3.21500000 /)
   molpos(:, 50) = (/  -5.49614250,  10.48123738,   3.69493985 /)
   molpos(:, 51) = (/  -5.27235415,  11.60294669,   2.88766853 /)
   molpos(:, 52) = (/  -4.74457213,  11.44487387,   1.60063352 /)
   molpos(:, 53) = (/  -4.44052963,  10.16533649,   1.12069367 /)
   molpos(:, 54) = (/  -5.36100000,   8.35210000,   3.82730000 /)
   molpos(:, 55) = (/  -5.89260000,  10.59120000,   4.66660000 /)
   molpos(:, 56) = (/  -5.50370000,  12.55470000,   3.25310000 /)
   molpos(:, 57) = (/  -4.58400000,  12.27840000,   0.99850000 /)
   molpos(:, 58) = (/  -4.05150000,  10.03810000,   0.15920000 /)
   !-------------------------------------------------------------------------
end subroutine dye_init
